# 一般读写类的属性值都是要通过get,set来处理,但是过于复杂
# 这就可以使用@property修饰器来处理


class Student(object):
    def __init__(self, name, age):
        self._name = name
        self._age = age

    # 读写的方法变成一个属性
    @property
    def name(self):
        return self._name

    # 再写一个方法用于设置值
    @name.setter
    def name(self, name):
        self._name = name

    # 如果只有属性而没有定义写入的方法,那么这个属性值是只读
    @property
    def age(self):
        return self._age


s = Student('Tom', 18)
print(s.name)
print(s.age)
s.name = 'Thomas'
# 下面这个设置属性的过程会报错,因为这里是只读的
# s.age = 17
print(s.name)
print(s.age)
